package ar.com.jsejtman.cajugastos2.example.service;

import ar.com.jsejtman.cajugastos2.example.dao.FeriadosDao;
import ar.com.jsejtman.cajugastos2.example.model.Feriados;
import ar.com.jsejtman.common.persistence.exception.DaoException;
import ar.com.jsejtman.common.service.definition.BaseService;
import ar.com.jsejtman.common.service.exception.EntitySavingException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * Servicio que permite realizar operaciones con una entidad de datos PracticaRealizada.
 * 
 * @author Julio Sejtman
 */
@Service
@Transactional
public class FeriadosService extends BaseService implements IFeriadosService {

	/**
	 * Logger de la aplicación.
	 */
	private static final Logger LOGGER = LoggerFactory.getLogger(FeriadosService.class);

	/**
	 * Obtiene un PracticaRealizada a partir de un identificador.
	 * 
	 * @param id Identificador del PracticaRealizada.
	 * @return PracticaRealizada obtenido.
	 * @throws EntitySavingException En caso de problemas.
	 */
	@Transactional(readOnly = true)
	public final Feriados getFeriado(final Integer id) throws EntitySavingException {

		if (id == null) {
			throw new EntitySavingException("El identificador no fue especificado.");
		}

		try {
			final FeriadosDao feriadosDao = this.getDaoFactory().newDao(FeriadosDao.class);

			return (feriadosDao.get(Feriados.class, id));

		} catch (final DaoException e) {
			final String mensajeError = "Error al obtener Auditor para identificador = " + id;

			FeriadosService.LOGGER.error(mensajeError, e);

			throw new EntitySavingException(mensajeError, e);
		}
	}
}
